home *** CD-ROM | disk | FTP | other *** search
- Path: phoenix.nlci.com!news
- From: krauskop@pop.nlci.com (Curtis Krauskopf)
- Newsgroups: comp.lang.c++
- Subject: Re: Heap Agent / SmartHeap
- Date: 12 Feb 1996 12:15:05 GMT
- Organization: NetLink Communications, Inc.
- Message-ID: <4fnb09$ipj@phoenix.nlci.com>
- References: <4f0uov$1au@maureen.teleport.com>
- NNTP-Posting-Host: dialup1-25.nlci.com
- Mime-Version: 1.0
- Content-Type: Text/Plain; charset=US-ASCII
- X-Newsreader: WinVN 0.99.6
-
- In article <4f0uov$1au@maureen.teleport.com>, grossman@teleport.com says...
- >
- >I am looking for comments about MicroQuill's HeapAgent
- >and SmartAgent from those who have use them.
- >
-
- Jeff,
-
- I use both products on a regular basis. Specifically, I have the Dos
- Smartheap and the Windows HeapAgent.
-
- I find both products to be incredibly invaluable tools when I am doing
- development and testing. Using HeapAgent and SmartHeap is like having a 'big
- brother' watch over your shoulder, making sure that you aren't doing something
- stupid to your heap. For the most part, the tools are unobtrusive and do all
- of their testing in the background. You only really notice them when
- something goes wrong with the heap.
-
- One Real Life example I had, just last week, was in using a third-party
- library with a Borland C++ 4.52 compiler. For some reason, the program 'hung'
- when compiled for Dos, but worked okay when compiled for 'EasyWin' windows.
- Well, I just linked in Smartheap, made NO changes to the source, and reran in
- Dos. Bingo! Smartheap reports that I'm running out of memory. Okay, add
- three lines of code to the main() routine, recompile, and the error log shows
- that I have a memory leak in one of the third-party objects. Add one line of
- code (a #include) to the library, recompile THAT, and I'm told the exact line
- where the memory leak is occurring. In twenty minutes, I had a problem solved
- that could have taken me a week to figure out otherwise.
-
- Strangely enough, the problem was with the compiler and not the library. The
- destructor for an object was not being called, which was not releasing the
- memory allocated by that object. This was happening hundreds of thousands of
- times internally in the library, and so it eventually consumed all memory.
-
- The MicroQuill tech support is the best in the business. They are very
- helpful, and do not give pat answers like "well, it could be your code...".
-
- According to MicroQuill, the amount of QC testing they do on their SmartHeap
- product is enourmous. Their test suite takes two to three days to complete.
- If it finds a bug, they retest it from scratch. That gives me a lot of
- confidence that I can trust it to do the right thing with my programs.
-
- When I got HeapAgent, I found a bug in their realloc() routine. It should
- have filled a released section of memory with a sentinal value (0xDD), but it
- was filling that section with garbage. A quick message to MicroQuill on the
- CompuServe forum confirmed that it was a bug, and since the HeapAgent API is
- provided, I could code my own bug fix, which I did.
-
- Overall, I'm very impressed with their product, and very happy with the
- service provided by MicroQuill on CompuServe.
-
- Curtis
-
-